﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.Common;
    using WMS6.DataEntity;
    using WMS6.QueryEntity;

    [ServiceContract(Namespace="WMS6.Services")]
    public interface ICrossdockService
    {
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string DeleteApportionRuleInfo(List<string> OwnerIDs, List<string> CustomerIDs, List<string> SeqNos, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string DeleteLaneInfo(List<string> laneIDs, PubParasInfo pubParasInfo);
        [OperationContract]
        string DeleteOppOrderRuleDetailInfo(List<string> opporderRuleIDs, List<string> lineIDs, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string DeleteOppOrderRuleInfo(List<string> oppOrderRuleIDs, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(XordersInfo)), FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo))]
        string DeleteXordersInfo(List<string> xOrderID, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        DataSet GetAllApportionRuleInfo(PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        DataSet GetAllLaneInfo(PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetAllOpporderRuleDetail(PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        DataSet GetAllOppOrderRuleInfo(PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(ApportionRuleInfo)), FaultContract(typeof(FaultDetail)), OperationContract]
        ApportionRuleInfo GetApportionRuleInfoByID(string OwnerID, string CustomerID, string SeqNo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(ApportionRuleQueryEntity)), FaultContract(typeof(FaultDetail))]
        DataSet GetApportionRuleInfoByQueryEntity(ApportionRuleQueryEntity apportionRuleQuery, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(ApportionRuleInfo)), OperationContract]
        List<ApportionRuleInfo> GetApportionRuleListByID(string OwnerID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(LaneInfo)), FaultContract(typeof(FaultDetail)), OperationContract]
        LaneInfo GetLaneInfoByID(string laneID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(LaneQueryEntity)), OperationContract, FaultContract(typeof(FaultDetail))]
        DataSet GetLaneInfoByQueryEntity(LaneQueryEntity laneQuery, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(OppOrderRuleDetailQueryEntity))]
        DataSet GetOppOrderRuleDetailByQueryEntity(OppOrderRuleDetailQueryEntity oppOrderRuleDetailQuery, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(OppOrderRuleDetailInfo))]
        OppOrderRuleDetailInfo GetOppOrderRuleDetailInfoByID(string opporderRuleID, string lineID, PubParasInfo pubParasInfo);
        [OperationContract]
        List<OppOrderRuleDetailInfo> GetOpporderRuleDetailListByID(string opporderRuleID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(OppOrderRuleInfo)), OperationContract, FaultContract(typeof(FaultDetail))]
        OppOrderRuleInfo GetOppOrderRuleIDByID(string OppOrderRuleID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(OppOrderRuleQueryEntity)), FaultContract(typeof(FaultDetail))]
        DataSet GetOppOrderRuleInfoByQueryEntity(OppOrderRuleQueryEntity oppOrderRuleQuery, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(XorderDetailInfo)), OperationContract]
        XorderDetailInfo GetXorderDetailInfoByID(string xOrderID, string LineID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(XpickDetailInfo)), ServiceKnownType(typeof(XorderDetailInfo)), OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(XordersInfo))]
        XordersInfo GetXordersInfoByID(string xOrderID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(XordersQueryEntity)), OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetXordersInfoByQueryEntity(XordersQueryEntity xordersQueryEntity, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(XorderDetailInfo))]
        DataSet GetXordersReceiptPurchaseOrderByQueryList(XordersQueryEntity xordersQueryEntity, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string InsertApportionRuleInfo(ApportionRuleInfo apportionRuleInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string InsertLane(LaneInfo laneInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(OppOrderRuleDetailInfo))]
        string InsertOppOrderRuleDetailInfo(OppOrderRuleDetailInfo oppOrderRuleDetailInfo, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string InsertOppOrderRuleInfo(OppOrderRuleInfo oppOrderRuleInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(XordersInfo)), OperationContract, FaultContract(typeof(FaultDetail))]
        string InsertXordersInfo(XordersInfo xOrdersInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string UpdateApportionRuleInfo(ApportionRuleInfo apportionRuleInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string UpdateLane(LaneInfo laneInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(DeliveryOrderDetailInfo)), OperationContract]
        string UpdateOppOrderRuleDetailInfo(OppOrderRuleDetailInfo oppOrderRuleDetailInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string UpdateOppOrderRuleInfo(OppOrderRuleInfo oppOrderRuleInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(XordersInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string UpdateXordersInfo(XordersInfo xOrdersInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(XorderDetailInfo))]
        string UpdateXOrdreDetail(XorderDetailInfo xorderDetailInfo, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string XorderAllocate(string receiptID, string xorderID, List<string> lineID, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string XPickDetailShipping(List<string> XpickDetailID, PubParasInfo pubParasInfo);
    }
}

